#ifndef In8Bala_H_
#define In8Bala_H_
#include "../../SAMA_Function.h"

enum In8Bala_OutMode
{
	Average_Value,
	Max_Value,
	Min_Value
};

typedef struct {
	float HL;
	float LL;
	In8Bala_OutMode Out_Mode;						
}In8Bala_Par_t;

typedef struct {
	bool AIfLink[9];					//< 记录模拟量输入的有效测点
	bool DIfLink[8];					//< 记录数字量输入的有效测点
	float LinkAV[8];
}In8Bala_Sta_t;

struct In8Bala_T
{
	Model_Base_t Base;		//< 模块基本参数结构体
	In8Bala_Par_t Par;		//< 模块可调参数结构体
	In8Bala_Sta_t Sta;		//< 模块运算中间参数结构体
};


extern In8Bala_T* In8Bala_t;


bool CALCU_SAMA(In8Bala)(Model_Base_t* arg, float dt, bool* DI, bool* DO, float* AI, float* AO);		//< SAMA运算函数
int BC_PARA(In8Bala)(Model_Base_t* arg, void** Data);													//< 广播SAMA参数变量函数（无参数需要广播的模块直接将BCPara函数设置为NULL即可）
int BAK_STA(In8Bala)(Model_Base_t* arg, void** Data);													//< 备份SAMA运算中间参数
int ANA_STA(In8Bala)(Model_Base_t* arg, void** Data);													//< 解析备份的SAMA运算中间参数
int CHANGE_PAR(In8Bala)(Model_Base_t* arg, void** Data);												//< 在线修改模块参数函数
void INIT_STAPAR(In8Bala)(Model_Base_t* arg);															//< 初始化模块运算中间参数


#endif
